#include <mysql/mysql.h>
/**
 *初始化连接数据库
 *成功返回1，失败返回0
 * */
int init_sql();

/**
 *关闭数据库
 *成功返回1，失败返回0
 * */
int close_sql();

/**
 *获取表中所有数据
 *table 表名
 */
MYSQL* select_all_sql(char *table);

/**
 *获取学生表中学号为id的数据
 *id 学生学号
 * */
MYSQL* select_stu_id_sql(int id);

/**
 *获取学生表中姓名为name的数据
 *name 学生姓名
 * */
MYSQL* select_stu_name_sql(char *name);

/**
 *获取关联表中选择课程编号为id的学生
 *id 课程编号
 * */
MYSQL* select_stu_by_sub_sql(int id);

/**
 * 获取学生表中所有的学生信息
 * */
MYSQL* select_stu_all_sql();

/**
 *获取课程表中编号为id的课程数据
 *id 课程编号
 * */
MYSQL* select_sub_id_sql(int id);

/**
 *获取课程表中所有的课程数据
 *
 * */
MYSQL* select_sub_all_sql();

/**
 *获取关联表中学号为id的学生所选择的所有课程
 *id 学生学号
 * */
MYSQL* select_sub_by_stu_sql(int id);

/**
 *获取关联表中学号为id的学生没有选择的所有课程
 *id 学生学号
 * */
MYSQL* slelect_sub_by_not_stu_sql(int id);
/**
 *修改学生表中学号为id的学生的姓名
 *id 学生学号
 *name 学生姓名
 *成功返回1，失败返回0
 * */
int update_stu_sql(int id, char* name);

/**
 *修改课程表中编号为id的所有信息
 *id 课程编号
 *name nature period credit max_num 课程名 性质 课时 学分 学生最大容纳量
 *成功返回1，失败返回0
 * */
int update_sub_sql(int id, char* name, char* nature, int period, float credit, int max_num);

/**
 *向学生表中插入学生信息
 *id 学生学号
 *name 学生姓名
 *成功返回1，失败返回0
 * */
int insert_stu_sql(int id, char* name);

/**
 *向课程表中插入课程信息
 *id name nature period credit max_num 课程编号 课程名 性质 课时 学分 学生最大容纳量
 *成功返回1，失败返回0
 * */
int insert_sub_sql(int id, char* name, char* nature, int period, float credit, int max_num);

/**
 *向选课表中添加关联数据
 *stu_id 学生学号
 *sub_id 课程编号
 *成功返回1，失败返回0
 * */
int insert_stu_sub(int stu_id, int sub_id);

/**
 *删除id为id的学生数据或课程数据
 *table 表名
 *id 学生学号或课程编号
 *成功返回1，失败返回0
 * */
int delete_sql(char* table, int id);

/**
 *删除学生表中学号为id的学生数据
 *id 学生学号
 *成功返回1，失败返回0
 * */
int delete_stu_sql(int id);

/**
 *删除课程表中课程编号为id的课程数据
 *id 课程编号
 *成功返回1，失败返回0
 * */
int delete_sub_sql(int id);

/**
 *删除选课表中的学号为stu_id的学生和编号为sub_id的课程关联
 *stu_id 学生学号
 *sub_id 课程编号
 *成功返回1，失败返回0
 * */
int delete_stu_sub(int stu_id, int sub_id);

/**
 *获取选课表中选课的课程编号为id的学生数量
 *id 课程编号
 *成功返回学生数量，失败返回0
 * */
int select_stu_num_sub(int id);

/**
 *获取选课表中学号为id的学生所选的课
 *id 学生学号
 *sum_credit 所选课程学分总和
 *成功返回选课数量，失败返回0
 * */
int select_sub_num_stu(int id, float* sum_credit);
